package models

import (
	"fmt"
	"gorm.io/gorm"
)

// ProRole 项目角色表
type ProRole struct {
	ID          uint64 `gorm:"primaryKey;autoIncrement" json:"id" form:"id"`
	Name        string `gorm:"type:varchar(50);notNull;uniqueIndex:idx_pro_role_name" json:"name" form:"name"`
	Description string `gorm:"type:text" json:"description" form:"description"`
	CreatedAt   string `gorm:"type:timestamp;default:CURRENT_TIMESTAMP" json:"created_at" form:"created_at"`
	UpdatedAt   string `gorm:"type:timestamp;default:CURRENT_TIMESTAMP;update:CURRENT_TIMESTAMP" json:"updated_at" form:"updated_at"`
}

func (ProRole) TableName() string {
	return "pro_roles"
}

//	GetProRoleByID
//
// 描述信息： 根据项目角色ID获取项目角色信息
//
// Param：
//
//	db ：数据库连接实例
//	id ：角色id
//
// Return：
//
//	ProRole ：角色全部信息
//	error ：错误信息
func GetProRoleByID(db *gorm.DB, id uint64) (ProRole, error) {
	var proRole ProRole
	if err := db.Model(&ProRole{}).Where("id = ?", id).First(&proRole).Error; err != nil {
		return ProRole{}, fmt.Errorf("failed to query pro role: %w", err)
	}
	return proRole, nil
}
